<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>traj_gen: qt_ui/qnode.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">traj_gen
   &#160;<span id="projectnumber">2.0</span>
   </div>
   <div id="projectbrief">trajectory generation module</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_ba64c83fe7f1e30769480aa2366055bb.html">qt_ui</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">qnode.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="qnode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef QNODE_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define QNODE_H</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#ifndef Q_MOC_RUN</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;ros/ros.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &lt;nav_msgs/Path.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;geometry_msgs/PoseStamped.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="_poly_traj_gen_8h.html">traj_gen/PolyTrajGen.h</a>&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;visualization_msgs/MarkerArray.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;QThread&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;QStringListModel&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_q_node.html">   25</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_q_node.html">QNode</a> : <span class="keyword">public</span> QThread {</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;Q_OBJECT</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;   <a class="code" href="class_q_node.html#af26ee8c152283b4a1999dc5d4bd67908">QNode</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv, <span class="keyword">const</span> std::string &amp;name );</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;   <a class="code" href="class_q_node.html#afed12669e9aed3e70721f507804778ca">~QNode</a>();</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#a32d00dbcf15c277e08caabf95af04f6e">on_init</a>();</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a770568addece696138f515d38408ff5c">shutdown</a>();</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#ae585b201389c51a177fa5e2fde252c84">run</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_q_node.html#a0a6dae02f9e317488095367203fa8a58">   36</a></span>&#160;   QStringListModel* <a class="code" href="class_q_node.html#a0a6dae02f9e317488095367203fa8a58">loggingModel</a>() { <span class="keywordflow">return</span> &amp;<a class="code" href="class_q_node.html#aff2207dadd447d4c2554df19b6f7ce48">logging</a>; }</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_q_node.html#ac21ae24311df97ac0e15c97179763b0e">   37</a></span>&#160;   <span class="keyword">const</span> std::string&amp; <a class="code" href="class_q_node.html#ac21ae24311df97ac0e15c97179763b0e">nodeName</a>() { <span class="keywordflow">return</span> <a class="code" href="class_q_node.html#ae2a04cf101323be1e9b2be1e63a03b7f">node_name</a>; }</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;   <span class="comment">// waypoints from rviz</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a7d0604b662cbda7b970efaa08e5b855c">waypoint_cb</a>(<span class="keyword">const</span> geometry_msgs::PoseStampedConstPtr&amp;);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;   <span class="comment">// trajectory call</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#af5092d0c618f01146c415c77bd025a35">traj_gen_call</a>(<span class="keywordtype">double</span> tf,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;                     geometry_msgs::Twist v0,</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                     geometry_msgs::Twist a0,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                     <a class="code" href="struct_traj_gen_opts.html">TrajGenOpts</a> option);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;   <span class="comment">// initialize the waypoints in queue</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a2b1b82bfd6e5e6187fe8216ba840bb09">wpnts_init</a>();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;   <span class="comment">// load the saved waypoints</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a2b816456344fcf2d809fe6ff5526b6e9">queue_file_load</a>(<span class="keywordtype">int</span>,vector&lt;geometry_msgs::PoseStamped&gt;&amp;);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;   <span class="comment">// writing directory</span></div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_q_node.html#a0967d1922eeb7e39eedca309c7003d23">   52</a></span>&#160;   <span class="keywordtype">string</span> <a class="code" href="class_q_node.html#a0967d1922eeb7e39eedca309c7003d23">write_path</a>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_q_node.html#ae7dd0fd8218c767bfa1ff5ba837cd165">   54</a></span>&#160;   std::vector&lt;geometry_msgs::PoseStamped&gt; <a class="code" href="class_q_node.html#ae7dd0fd8218c767bfa1ff5ba837cd165">queue</a>; <span class="comment">// the wpnts from user</span></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_q_node.html#a7fa96879efd44c15a8b03f3cdd9d665b">   55</a></span>&#160;   visualization_msgs::MarkerArray <a class="code" href="class_q_node.html#a7fa96879efd44c15a8b03f3cdd9d665b">wpnt_markerArray</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;   </div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;   <span class="comment">// flags</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_q_node.html#a98b08e7704b00df8648f8c08dffe950c">   58</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#a98b08e7704b00df8648f8c08dffe950c">is_connected</a> = <span class="keyword">false</span>; <span class="comment">// to ros</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_q_node.html#a2bbe086eaeebbc5000e7cd2fd6257043">   59</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#a2bbe086eaeebbc5000e7cd2fd6257043">is_insert_permit</a>; <span class="comment">// is insert waypoints active</span></div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_q_node.html#a6ace2d0aa89adecfe699b3f1c3ce0b0f">   60</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#a6ace2d0aa89adecfe699b3f1c3ce0b0f">is_in_session</a> = <span class="keyword">false</span>; <span class="comment">// is in simulation session</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_q_node.html#a53a7eeda1a2054b66441bd029976dd33">   61</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#a53a7eeda1a2054b66441bd029976dd33">is_init</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_q_node.html#ae7023e2ee0bf48734c2c2181be96abc7">   62</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#ae7023e2ee0bf48734c2c2181be96abc7">is_path</a> = <span class="keyword">false</span>; <span class="comment">// was path computed</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_q_node.html#a45fa5f948c36d96f286d65cee0fef22b">   63</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#a45fa5f948c36d96f286d65cee0fef22b">cur_spline_eval_time</a> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_q_node.html#a230cb427536b2173add5e35063bcc446">   64</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#a230cb427536b2173add5e35063bcc446">total_duration</a> = 5;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_q_node.html#a7184edc0e91cf617eb5c3a114858f3ce">   65</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#a7184edc0e91cf617eb5c3a114858f3ce">global_time_end</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_q_node.html#a4b5f0a40821fbb176de620cb5a3921f7">   66</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#a4b5f0a40821fbb176de620cb5a3921f7">previous_elapsed</a> =0; <span class="comment">// before publish control button pressed </span></div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_q_node.html#a2893bbeba854c1cc89d2271804325b7b">   67</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#a2893bbeba854c1cc89d2271804325b7b">button_elapsed</a>=0; <span class="comment">// after the button pressed again,</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_q_node.html#a96e6599c14732ded065ae6a5b004f872">   68</a></span>&#160;   ros::Time <a class="code" href="class_q_node.html#a96e6599c14732ded065ae6a5b004f872">button_click_time</a>; </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;   <span class="comment">// params</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_q_node.html#aaac0b11e5a9902a566a9f952da85d5a5">   70</a></span>&#160;   ros::Time <a class="code" href="class_q_node.html#aaac0b11e5a9902a566a9f952da85d5a5">pred_start_time</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_q_node.html#a147dc78b7181841f9b80711b14d371d4">   71</a></span>&#160;   ros::Time <a class="code" href="class_q_node.html#a147dc78b7181841f9b80711b14d371d4">session_ckp</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_q_node.html#ad1f3252201b932fc5d39b4f80349c7e2">   72</a></span>&#160;   <span class="keywordtype">double</span> <a class="code" href="class_q_node.html#ad1f3252201b932fc5d39b4f80349c7e2">record_dt</a> = 0.5;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_q_node.html#ada91a6275708099206c452df47210045">   73</a></span>&#160;   <span class="keywordtype">bool</span> <a class="code" href="class_q_node.html#ada91a6275708099206c452df47210045">arrow_record_switch</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;Q_SIGNALS:</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#abddcd4e0187f6d4513bbee7ba4656827">loggingUpdated</a>();</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a7888b171c93c5f47334f5d2815adf445">rosShutdown</a>();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a80d139522a1333db2c6ea33914c32378">writeOnBoard</a>(QString);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a9a317b8b5e502c6eac639910c36dea3c">askSlider</a>(<span class="keywordtype">double</span>* height);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;   <span class="keywordtype">void</span> <a class="code" href="class_q_node.html#a498b0376fc75702fd8b61b91ef109769">ros_comms_init</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_q_node.html#aa0c7569195d8b9a6e568e98097f11d52">   84</a></span>&#160;   <span class="keywordtype">int</span> <a class="code" href="class_q_node.html#aa0c7569195d8b9a6e568e98097f11d52">init_argc</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_q_node.html#a92c2972e3dd2a5de95d0edf8c75e1e5f">   85</a></span>&#160;   <span class="keywordtype">char</span>** <a class="code" href="class_q_node.html#a92c2972e3dd2a5de95d0edf8c75e1e5f">init_argv</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_q_node.html#aff2207dadd447d4c2554df19b6f7ce48">   86</a></span>&#160;   QStringListModel <a class="code" href="class_q_node.html#aff2207dadd447d4c2554df19b6f7ce48">logging</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_q_node.html#ae2a04cf101323be1e9b2be1e63a03b7f">   87</a></span>&#160;   <span class="keyword">const</span> std::string <a class="code" href="class_q_node.html#ae2a04cf101323be1e9b2be1e63a03b7f">node_name</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_q_node.html#a978051ca9f7fc0c08a2e3b55aa87e7b7">   88</a></span>&#160;   std::string <a class="code" href="class_q_node.html#a978051ca9f7fc0c08a2e3b55aa87e7b7">target_wnpt_topic</a>; <span class="comment">// default: /target_wnpt1 in rviz</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;   std_msgs::Header header;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;   <span class="comment">// planner object</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;   <a class="code" href="class_path_planner.html">PathPlanner</a> planner;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;   <span class="comment">// waypoint input from user</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;   ros::Subscriber wpnt_sub; <span class="comment">// the pnts subscriber</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;   ros::Publisher wpnt_marker_pub; <span class="comment">// the wpnts from user (vis)</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;   ros::Publisher safe_corridor_pub; <span class="comment">// safe corridor in case of mulitple corridor</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;   ros::Publisher safe_corridor_single_pub; <span class="comment">// safe corridor in case of single corridor</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;   </div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;   <span class="comment">// generated global path</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;   <a class="code" href="structtraj__gen_1_1_poly_spline_x_y_z__.html">traj_gen::PolySplineXYZ</a> spline;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;   ros::Publisher spline_path_pub;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;   nav_msgs::Path spline_path;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;   ros::Publisher spline_knot_pub;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;   <span class="comment">// for publising path</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;   ros::Publisher target_goal_pub; <span class="comment">// publisher for target goal</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;   geometry_msgs::PoseStamped target_goal; <span class="comment">// goal point for control</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#endif // QNODE_H</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="ttc" id="class_q_node_html_a32d00dbcf15c277e08caabf95af04f6e"><div class="ttname"><a href="class_q_node.html#a32d00dbcf15c277e08caabf95af04f6e">QNode::on_init</a></div><div class="ttdeci">bool on_init()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00028">qnode.cpp:28</a></div></div>
<div class="ttc" id="class_q_node_html_ad1f3252201b932fc5d39b4f80349c7e2"><div class="ttname"><a href="class_q_node.html#ad1f3252201b932fc5d39b4f80349c7e2">QNode::record_dt</a></div><div class="ttdeci">double record_dt</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00072">qnode.h:72</a></div></div>
<div class="ttc" id="class_q_node_html_a147dc78b7181841f9b80711b14d371d4"><div class="ttname"><a href="class_q_node.html#a147dc78b7181841f9b80711b14d371d4">QNode::session_ckp</a></div><div class="ttdeci">ros::Time session_ckp</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00071">qnode.h:71</a></div></div>
<div class="ttc" id="struct_traj_gen_opts_html"><div class="ttname"><a href="struct_traj_gen_opts.html">TrajGenOpts</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00063">PolyTrajGen.h:63</a></div></div>
<div class="ttc" id="class_q_node_html_ae7023e2ee0bf48734c2c2181be96abc7"><div class="ttname"><a href="class_q_node.html#ae7023e2ee0bf48734c2c2181be96abc7">QNode::is_path</a></div><div class="ttdeci">bool is_path</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00062">qnode.h:62</a></div></div>
<div class="ttc" id="class_q_node_html_a978051ca9f7fc0c08a2e3b55aa87e7b7"><div class="ttname"><a href="class_q_node.html#a978051ca9f7fc0c08a2e3b55aa87e7b7">QNode::target_wnpt_topic</a></div><div class="ttdeci">std::string target_wnpt_topic</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00088">qnode.h:88</a></div></div>
<div class="ttc" id="class_q_node_html_af26ee8c152283b4a1999dc5d4bd67908"><div class="ttname"><a href="class_q_node.html#af26ee8c152283b4a1999dc5d4bd67908">QNode::QNode</a></div><div class="ttdeci">QNode(int argc, char **argv, const std::string &amp;name)</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00005">qnode.cpp:5</a></div></div>
<div class="ttc" id="class_q_node_html_a96e6599c14732ded065ae6a5b004f872"><div class="ttname"><a href="class_q_node.html#a96e6599c14732ded065ae6a5b004f872">QNode::button_click_time</a></div><div class="ttdeci">ros::Time button_click_time</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00068">qnode.h:68</a></div></div>
<div class="ttc" id="class_q_node_html_ae2a04cf101323be1e9b2be1e63a03b7f"><div class="ttname"><a href="class_q_node.html#ae2a04cf101323be1e9b2be1e63a03b7f">QNode::node_name</a></div><div class="ttdeci">const std::string node_name</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00087">qnode.h:87</a></div></div>
<div class="ttc" id="class_q_node_html_aff2207dadd447d4c2554df19b6f7ce48"><div class="ttname"><a href="class_q_node.html#aff2207dadd447d4c2554df19b6f7ce48">QNode::logging</a></div><div class="ttdeci">QStringListModel logging</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00086">qnode.h:86</a></div></div>
<div class="ttc" id="class_q_node_html_aaac0b11e5a9902a566a9f952da85d5a5"><div class="ttname"><a href="class_q_node.html#aaac0b11e5a9902a566a9f952da85d5a5">QNode::pred_start_time</a></div><div class="ttdeci">ros::Time pred_start_time</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00070">qnode.h:70</a></div></div>
<div class="ttc" id="class_q_node_html_afed12669e9aed3e70721f507804778ca"><div class="ttname"><a href="class_q_node.html#afed12669e9aed3e70721f507804778ca">QNode::~QNode</a></div><div class="ttdeci">~QNode()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00016">qnode.cpp:16</a></div></div>
<div class="ttc" id="class_q_node_html_a7184edc0e91cf617eb5c3a114858f3ce"><div class="ttname"><a href="class_q_node.html#a7184edc0e91cf617eb5c3a114858f3ce">QNode::global_time_end</a></div><div class="ttdeci">double global_time_end</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00065">qnode.h:65</a></div></div>
<div class="ttc" id="class_q_node_html_a7fa96879efd44c15a8b03f3cdd9d665b"><div class="ttname"><a href="class_q_node.html#a7fa96879efd44c15a8b03f3cdd9d665b">QNode::wpnt_markerArray</a></div><div class="ttdeci">visualization_msgs::MarkerArray wpnt_markerArray</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00055">qnode.h:55</a></div></div>
<div class="ttc" id="class_q_node_html_a2bbe086eaeebbc5000e7cd2fd6257043"><div class="ttname"><a href="class_q_node.html#a2bbe086eaeebbc5000e7cd2fd6257043">QNode::is_insert_permit</a></div><div class="ttdeci">bool is_insert_permit</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00059">qnode.h:59</a></div></div>
<div class="ttc" id="class_path_planner_html"><div class="ttname"><a href="class_path_planner.html">PathPlanner</a></div><div class="ttdef"><b>Definition:</b> <a href="_poly_traj_gen_8h_source.html#l00106">PolyTrajGen.h:106</a></div></div>
<div class="ttc" id="class_q_node_html_a98b08e7704b00df8648f8c08dffe950c"><div class="ttname"><a href="class_q_node.html#a98b08e7704b00df8648f8c08dffe950c">QNode::is_connected</a></div><div class="ttdeci">bool is_connected</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00058">qnode.h:58</a></div></div>
<div class="ttc" id="class_q_node_html_aa0c7569195d8b9a6e568e98097f11d52"><div class="ttname"><a href="class_q_node.html#aa0c7569195d8b9a6e568e98097f11d52">QNode::init_argc</a></div><div class="ttdeci">int init_argc</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00084">qnode.h:84</a></div></div>
<div class="ttc" id="class_q_node_html_a2893bbeba854c1cc89d2271804325b7b"><div class="ttname"><a href="class_q_node.html#a2893bbeba854c1cc89d2271804325b7b">QNode::button_elapsed</a></div><div class="ttdeci">double button_elapsed</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00067">qnode.h:67</a></div></div>
<div class="ttc" id="class_q_node_html_ae7dd0fd8218c767bfa1ff5ba837cd165"><div class="ttname"><a href="class_q_node.html#ae7dd0fd8218c767bfa1ff5ba837cd165">QNode::queue</a></div><div class="ttdeci">std::vector&lt; geometry_msgs::PoseStamped &gt; queue</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00054">qnode.h:54</a></div></div>
<div class="ttc" id="class_q_node_html_a9a317b8b5e502c6eac639910c36dea3c"><div class="ttname"><a href="class_q_node.html#a9a317b8b5e502c6eac639910c36dea3c">QNode::askSlider</a></div><div class="ttdeci">void askSlider(double *height)</div></div>
<div class="ttc" id="class_q_node_html_abddcd4e0187f6d4513bbee7ba4656827"><div class="ttname"><a href="class_q_node.html#abddcd4e0187f6d4513bbee7ba4656827">QNode::loggingUpdated</a></div><div class="ttdeci">void loggingUpdated()</div><div class="ttdef"><b>Definition:</b> <a href="moc__qnode_8cxx_source.html#l00099">moc_qnode.cxx:99</a></div></div>
<div class="ttc" id="class_q_node_html_a230cb427536b2173add5e35063bcc446"><div class="ttname"><a href="class_q_node.html#a230cb427536b2173add5e35063bcc446">QNode::total_duration</a></div><div class="ttdeci">double total_duration</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00064">qnode.h:64</a></div></div>
<div class="ttc" id="class_q_node_html_ac21ae24311df97ac0e15c97179763b0e"><div class="ttname"><a href="class_q_node.html#ac21ae24311df97ac0e15c97179763b0e">QNode::nodeName</a></div><div class="ttdeci">const std::string &amp; nodeName()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00037">qnode.h:37</a></div></div>
<div class="ttc" id="class_q_node_html_ada91a6275708099206c452df47210045"><div class="ttname"><a href="class_q_node.html#ada91a6275708099206c452df47210045">QNode::arrow_record_switch</a></div><div class="ttdeci">bool arrow_record_switch</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00073">qnode.h:73</a></div></div>
<div class="ttc" id="class_q_node_html_a0967d1922eeb7e39eedca309c7003d23"><div class="ttname"><a href="class_q_node.html#a0967d1922eeb7e39eedca309c7003d23">QNode::write_path</a></div><div class="ttdeci">string write_path</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00052">qnode.h:52</a></div></div>
<div class="ttc" id="class_q_node_html_a7888b171c93c5f47334f5d2815adf445"><div class="ttname"><a href="class_q_node.html#a7888b171c93c5f47334f5d2815adf445">QNode::rosShutdown</a></div><div class="ttdeci">void rosShutdown()</div><div class="ttdef"><b>Definition:</b> <a href="moc__qnode_8cxx_source.html#l00105">moc_qnode.cxx:105</a></div></div>
<div class="ttc" id="class_q_node_html_a2b1b82bfd6e5e6187fe8216ba840bb09"><div class="ttname"><a href="class_q_node.html#a2b1b82bfd6e5e6187fe8216ba840bb09">QNode::wpnts_init</a></div><div class="ttdeci">void wpnts_init()</div></div>
<div class="ttc" id="class_q_node_html_a53a7eeda1a2054b66441bd029976dd33"><div class="ttname"><a href="class_q_node.html#a53a7eeda1a2054b66441bd029976dd33">QNode::is_init</a></div><div class="ttdeci">bool is_init</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00061">qnode.h:61</a></div></div>
<div class="ttc" id="class_q_node_html_a498b0376fc75702fd8b61b91ef109769"><div class="ttname"><a href="class_q_node.html#a498b0376fc75702fd8b61b91ef109769">QNode::ros_comms_init</a></div><div class="ttdeci">void ros_comms_init()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00041">qnode.cpp:41</a></div></div>
<div class="ttc" id="class_q_node_html_a6ace2d0aa89adecfe699b3f1c3ce0b0f"><div class="ttname"><a href="class_q_node.html#a6ace2d0aa89adecfe699b3f1c3ce0b0f">QNode::is_in_session</a></div><div class="ttdeci">bool is_in_session</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00060">qnode.h:60</a></div></div>
<div class="ttc" id="class_q_node_html_a7d0604b662cbda7b970efaa08e5b855c"><div class="ttname"><a href="class_q_node.html#a7d0604b662cbda7b970efaa08e5b855c">QNode::waypoint_cb</a></div><div class="ttdeci">void waypoint_cb(const geometry_msgs::PoseStampedConstPtr &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00122">qnode.cpp:122</a></div></div>
<div class="ttc" id="class_q_node_html_a92c2972e3dd2a5de95d0edf8c75e1e5f"><div class="ttname"><a href="class_q_node.html#a92c2972e3dd2a5de95d0edf8c75e1e5f">QNode::init_argv</a></div><div class="ttdeci">char ** init_argv</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00085">qnode.h:85</a></div></div>
<div class="ttc" id="class_q_node_html"><div class="ttname"><a href="class_q_node.html">QNode</a></div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00025">qnode.h:25</a></div></div>
<div class="ttc" id="_poly_traj_gen_8h_html"><div class="ttname"><a href="_poly_traj_gen_8h.html">PolyTrajGen.h</a></div></div>
<div class="ttc" id="class_q_node_html_a45fa5f948c36d96f286d65cee0fef22b"><div class="ttname"><a href="class_q_node.html#a45fa5f948c36d96f286d65cee0fef22b">QNode::cur_spline_eval_time</a></div><div class="ttdeci">double cur_spline_eval_time</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00063">qnode.h:63</a></div></div>
<div class="ttc" id="class_q_node_html_af5092d0c618f01146c415c77bd025a35"><div class="ttname"><a href="class_q_node.html#af5092d0c618f01146c415c77bd025a35">QNode::traj_gen_call</a></div><div class="ttdeci">bool traj_gen_call(double tf, geometry_msgs::Twist v0, geometry_msgs::Twist a0, TrajGenOpts option)</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00059">qnode.cpp:59</a></div></div>
<div class="ttc" id="class_q_node_html_a4b5f0a40821fbb176de620cb5a3921f7"><div class="ttname"><a href="class_q_node.html#a4b5f0a40821fbb176de620cb5a3921f7">QNode::previous_elapsed</a></div><div class="ttdeci">double previous_elapsed</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00066">qnode.h:66</a></div></div>
<div class="ttc" id="class_q_node_html_a2b816456344fcf2d809fe6ff5526b6e9"><div class="ttname"><a href="class_q_node.html#a2b816456344fcf2d809fe6ff5526b6e9">QNode::queue_file_load</a></div><div class="ttdeci">void queue_file_load(int, vector&lt; geometry_msgs::PoseStamped &gt; &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00086">qnode.cpp:86</a></div></div>
<div class="ttc" id="class_q_node_html_a0a6dae02f9e317488095367203fa8a58"><div class="ttname"><a href="class_q_node.html#a0a6dae02f9e317488095367203fa8a58">QNode::loggingModel</a></div><div class="ttdeci">QStringListModel * loggingModel()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8h_source.html#l00036">qnode.h:36</a></div></div>
<div class="ttc" id="class_q_node_html_a80d139522a1333db2c6ea33914c32378"><div class="ttname"><a href="class_q_node.html#a80d139522a1333db2c6ea33914c32378">QNode::writeOnBoard</a></div><div class="ttdeci">void writeOnBoard(QString)</div><div class="ttdef"><b>Definition:</b> <a href="moc__qnode_8cxx_source.html#l00111">moc_qnode.cxx:111</a></div></div>
<div class="ttc" id="structtraj__gen_1_1_poly_spline_x_y_z___html"><div class="ttname"><a href="structtraj__gen_1_1_poly_spline_x_y_z__.html">traj_gen::PolySplineXYZ_&lt; std::allocator&lt; void &gt; &gt;</a></div></div>
<div class="ttc" id="class_q_node_html_ae585b201389c51a177fa5e2fde252c84"><div class="ttname"><a href="class_q_node.html#ae585b201389c51a177fa5e2fde252c84">QNode::run</a></div><div class="ttdeci">void run()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00172">qnode.cpp:172</a></div></div>
<div class="ttc" id="class_q_node_html_a770568addece696138f515d38408ff5c"><div class="ttname"><a href="class_q_node.html#a770568addece696138f515d38408ff5c">QNode::shutdown</a></div><div class="ttdeci">void shutdown()</div><div class="ttdef"><b>Definition:</b> <a href="qnode_8cpp_source.html#l00020">qnode.cpp:20</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
